==========================================================================
                             PINBALL ACTION
                The Tehkan arcade pinball (1985), one player
                for the ZX Spectrum 128K, +2, +2A and +3
==========================================================================

  Arcade game ............ (C) 1985 Tehkan
  Spectrum version ....... (C) 2026 namco/nexgen

  In 1985 Tehkan, later Tecmo, built a video pinball game: four tables,
  one main table and three bonus tables behind its gates, run by two Z80
  processors with three AY sound chips.

  This Spectrum version runs the arcade's own program. Its code was
  disassembled, moved to the Spectrum and checked instruction by
  instruction against the original, so the ball physics, the rules,
  the scoring, the demo and the high-score table are the arcade's. The
  four tables were redrawn for the Spectrum's screen, and the arcade's
  sound program plays its tunes and effects on the single AY chip.


REQUIREMENTS
------------
  A ZX Spectrum 128K, +2, +2A or +3. Pinball Action uses all of the 128K
  memory and the AY sound chip. On a 48K Spectrum it says so and returns
  to BASIC.

  The high scores last until you switch off.


LOADING
-------
  Choose "Tape Loader" from the 128 menu, or type in 128 BASIC:

      LOAD ""

  and start the tape. The loading screen appears first, then the rest of
  the game loads. When the loading is done the picture fades out and the
  title starts.


THE CONTROLS
------------
  The default keys:

      Z ............. left flipper
      M ............. right flipper
      SPACE ......... launch the ball
      CAPS SHIFT .... nudge (shake the table)
      C ............. insert a coin
      S ............. start a game
      ENTER ......... the options (when no game is being played)

  A Kempston, Sinclair (+2 joystick 1: keys 6 to 0) or Cursor (keys 5 to
  8 and 0) joystick can be used as well as the keys: LEFT is the left
  flipper, RIGHT the right flipper, UP the nudge and FIRE the launch.
  Choose the joystick on the options screen. Coin and start are always
  on the keys.


STARTING A GAME
---------------
  As in the arcade, a game costs a credit. Press C to insert a coin (the
  panel shows your CREDIT), then S to start. The main table comes up
  with PLAYER ONE and PUSH START BUTTON: press SPACE to launch the ball.
  If you wait, the machine starts beeping and then launches the ball by
  itself.

  While no game is on, the arcade's own attract runs: the title, the
  high-score table and a demo game, played by the arcade's own flipper
  player.


THE SCREEN
----------
  The table takes the left two thirds of the screen. The panel on the
  right shows the logo, your score (1UP), the high score (HI), the
  arcade's messages and your credits. The BALL and BONUS boxes at the
  bottom of each table show the balls left in reserve and the bonus
  count.

  At some places the ball runs under the table's drawings, as it does in
  the arcade, and is hidden for a moment.


THE TABLES
----------
  MAIN ...... the woman's face in flaming hair, with eight spinning
              wheels around her. Every ball starts here.
  SLOT ...... red: the phoenix and the three "777" slot reels. Reached
              through the gate on the left side of the main table.
  BOWLING ... green: the two bowling girls and the ten pins. Reached
              through the hole at the top left of the main table, once
              the five lamp bars at the top of the hair are lit.
  CARDS ..... cyan: the jester and the card targets 10 J Q K A, with the
              poker hands to make. Reached through the gate on the right
              side of the main table.

  Each bonus table goes back to the main table through its top-right
  gate, marked MAIN. The lower part, the flippers, the side lanes and
  the lamps there, is the same on all four tables. A ball lost on any
  table brings the next one to the main table.


THE RULES
---------
  - The goal: complete the three coloured tables, R (slot), G (bowling)
    and B (cards), to light SPECIAL, the "S" lamp on the main table. Hit
    the lit S for 3 credits.
  - When a coloured table's task is done, its R, G or B lamp lights, the
    "E" (EXTRA) lamp lights, and the 100 bumper becomes a 1000 bumper,
    on that table and on the main table. Hit the target with the lit E
    for an extra ball.
      SLOT:    each pass over a spinner spins the reels. The right
               combination lights E; the blue ADV targets move it from
               side to side. BAR BAR BAR gives an extra ball at once.
      BOWLING: the ball must cross all the pins three times (an X for
               each pass).
      CARDS:   hit the card targets to make each hand, all the hands in
               turn.
  - On the main table the A B C drop targets close the right-side ball
    exit and raise the post between the flippers. The DOWN POST lane
    lowers the post again.
  - The COLLECT BONUS holes pay the bonus at once, times the multiplier,
    and you keep the bonus.
  - At the end of each ball the bonus is counted: BONUS x multiplier
    x 1,000 points. The 2x to 5x lamps show the multiplier.
  - Extra balls also come with the score (70,000 and 200,000 to start
    with: see the options).
  - The nudge pushes the ball a little. There is no tilt.


GAME OVER AND HIGH SCORES
-------------------------
  After the last ball, a score good enough for the top ten asks for your
  initials, against a 60-second clock: the right flipper (M) goes to the
  next letter, the left flipper (Z) back one, and SPACE takes the letter.
  S ends the entry.


THE OPTIONS
-----------
  Press ENTER while no game is being played. The arcade waits while the
  options are shown; ENTER again goes back. Press the option's number to
  change it. The settings are the arcade's own switches, and a new game
  takes them:

    1 BALLS .......... 2, 3, 4 or 5 balls a game (3)
    2 EXTRA BALL ..... the scores for an extra ball: 70K 200K,
                       70K 200K 1000K, 100K 300K, 100K 300K 1000K,
                       100K, 200K or NONE (70K 200K)
    3 FLIPPERS ....... difficulty: EASY, MEDIUM, HARD, HARDEST (EASY)
    4 OUTLANES ....... difficulty: EASY, MEDIUM, HARD, HARDEST (EASY)
    5 JOYSTICK ....... KEMPSTON, SINCLAIR or CURSOR
    6 REDEFINE KEYS .. press a key for each control in turn
    7 EXTRA LAMP ..... EASY or HARD: with HARD the main table's EXTRA
                       lamp lights less often (EASY)

  The options screen lists the keys in use. ENTER cannot be given to a
  control.


TIMING
------
  The arcade runs at 60 frames a second, the Spectrum at 50. Each
  Spectrum frame runs one arcade frame, with the ball's movement scaled
  up so that the ball flies at the arcade's speed. The game's timers
  (the auto-launch, the hold in a hole, the bonus count) run a little
  slower than in the arcade.


CONSTRAINTS
-----------
  As is pretty obvious, this is a game that required some heavy tweaking
  to get running on a simple ZX Spectrum. We are modelling two Z80 CPUs
  running at 4Mhz and 3Mhz plus 3 AY-3-8910 sound chips on a single
  3.5Mhz Z80 and a single AY-3-8912 chip. Most of the time the game will
  run at 50fps, but when some heavier action is running on screen, things
  will tend to slow down a bit (but not much, i promise!). If you are
  running the game on an emulator that can clock the Z80 at 7Mhz, every
  slowdown will be gone - Well, 99% of it :)

  All graphics were converted by hand and scaled down to match our tiny
  play area, i am not a graphic artist, so i did the best i could with
  help from a few python scripts to extract arcade data and guide me in
  this conversion process.
  
  AI was also used (Claude Opus 5.5) to help write yet more tooling and
  disassembling a few sections of the arcade so that i can see what it
  was doing. Some people hate AI, to me and being a professional
  software architect it's just another tool. I am not a fan of this
  "vibe coding" thing because a lot of people using it have no
  idea what they're doing, but as a tool, a helper - Heck yeah!

  So, this is it, i am working on a ZX Spectrum Next version which will
  be, from what i can see, an exact arcade replica. It is far far
  easier to port, a single python tool i wrote converted all graphics,
  rotated them as the arcade is flipped and assigned palettes to them
  and the rest is just Z80 code, hooks here and there and some "glue".
  It's looking very very good (and requiring 14Mhz lol).

  Enjoy it and keep the ZX Speccy alive, it's a glorious cute little
  machine and even in 2026 it's still a LOT of fun.

  Thanks!

==========================================================================
  Pinball Action for the ZX Spectrum by namco/nexgen in 2026. The arcade
  game Pinball Action (C) 1985 Tehkan.
==========================================================================
